home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / rjs.lha / RJS / Transport / tests / xq.C < prev   
C/C++ Source or Header  |  1991-06-14  |  2KB  |  87 lines

  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <osfcn.h>
  4. #include <libc.h>
  5.  
  6. #include "RJS/Transport.h"
  7. #include "RJS/Convert.h"
  8.  
  9. typedef struct {
  10.     char object;
  11.     char operation;
  12.     char buffer[512];
  13. } request;
  14.  
  15. typedef struct {
  16.     char status;
  17.     char eod;
  18.     char buffer[512];
  19. } reply;
  20.  
  21. void test(char *name, char *obj)
  22. {
  23. char buffer[512];
  24. unsigned short len;
  25. request rq;
  26. reply rp;
  27.     
  28.   RJS_DECnetAddress server_address(name,RJS_Convert::toInt(obj));
  29.   RJS_DECnetSeqPacket server;
  30.  
  31. //  cout << server_address.ss_message() << endl;
  32.  
  33.   server.active(server_address);
  34.   server.linger();
  35.  
  36.   rq.object=1;
  37.   rq.operation=1;
  38.  
  39.   server.write((char *) &rq,2);
  40.  
  41.   while ( 1) {
  42.     server.read((char *)&rp,sizeof(rp));
  43.     if (rp.eod) break;
  44.     char *p=rp.buffer,*t;
  45.     char queue_name[32];
  46.     unsigned short num_jobs;
  47.     char qstatus[128];
  48.     t=queue_name;
  49.         while (*p) *t++=*p++;
  50.     *t++ = 0;
  51.     p++;
  52.     num_jobs = (unsigned short) *p;
  53.         p += 2;
  54.     t=qstatus;
  55.     while (*p) *t++=*p++;
  56.     *t++ = 0;
  57.       cout << "client: read ==> '" << queue_name << "' '" 
  58.          << num_jobs << "' '" << qstatus << "'" <<endl;
  59.   }
  60.  
  61.   rq.object=2;
  62.   rq.operation=1;
  63.   server.write((char *) &rq,2);
  64.  
  65.   server.read(buffer,5);
  66.   cout << "client: read ==> '" << buffer << "'" << endl;
  67.  
  68.   rq.object=0;
  69.   rq.operation=0;
  70.   server.write((char *) &rq,2);
  71.  
  72. //  while ( server.read(buffer,512)>0) {
  73. //      cout << "client: read ==> '" << buffer << "'" << endl;
  74. //   }
  75.  
  76. }
  77.  
  78. int main(int argc, char *argv[]) 
  79. {
  80.   if (argc!=3) {
  81.     cout<< "usage: " << argv[0] << "host object " << endl;
  82.     exit(1);
  83.   }
  84.   test(argv[1],argv[2]);
  85.   exit(0);
  86. }
  87.